/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ministerioeducacion;

import java.util.ArrayList;

/**
 *
 * TRABAJO PRACTICO NRO 1
 * INTEGRANTES:
 *
 */
public class MinisterioEducacion {

    private String provincia;
    //private Escuela vec[]; // Reemplazar el vector por una colección ArrayList
    private ArrayList<Escuela> vec;

    /*
     * Item 3
     * Completar: constructor con parámetros, que en caso de ingresar un tamaño del arreglo no válido crea por defecto un vector de 10 elementos.
     */
    public MinisterioEducacion(String provincia) {
        this.provincia = provincia;
        vec = new ArrayList<Escuela>();
    }
    /*
     * Item 4
     * Completar: método que inserta la escuela en el arreglo siempre que haya espacio en el mismo y
     * no exista otra escuela con el mismo código.
     * El método retorna true si se pudo almacenar con éxito la escuela y, false caso contrario.
     */

    public boolean addEscuela(Escuela e) {
        return vec.add(e);
        /*boolean ban= false;
        // Completar
        return ban;*/
    }

    /*
     * Item 5
     * Algoritmo: Determinar cuál es la mayor cantidad de alumnos inscriptos en las escuelas considerar
     * solo las escuelas cuyo nombre comienza con las letras"EE".
     * */
    public int mayorCantidadAlumnos() {
        int mayor = 0;
        boolean ban = false;
        for (Escuela ref : vec) {
            if (ref != null && ref.getNombre().length() > 1) {
                if (ref.getNombre().substring(0, 2).equalsIgnoreCase("EE")) {
                    if (ban && ref.getAlumnosInscriptos() > mayor) {
                        mayor = ref.getAlumnosInscriptos();
                    } else {
                        mayor = ref.getAlumnosInscriptos();
                    }
                }
            }
        }
        return mayor;
    }

    /*
     * Item 6
     * Completar: Método que retorna los datos de todas las escuelas del Ministerio cuyo nivel educativo es
     * igual a x, siendo x un valor String pasado por parametro.
     * Considerar que diferentes escuelas pueden poseer el mismo nivel educativo.
     */
    public String informeEscuelas(String nivelEducativo) {
        String resultado = null;
        boolean ban = false;
        int nivel = 0;
        try {
            nivel = Integer.parseInt(nivelEducativo);
        } catch (NumberFormatException e) {
            return "El parametro no es un numero";
        }
        for (Escuela ref : vec) {
            if (ref != null && ref.getNivel() == nivel) {
                if (ban) {
                    resultado += ref.toString() + "\n";
                } else {
                    resultado = ref.toString() + "\n";
                    ban = true;
                }

            }
        }
        return resultado;
    }

    public String getProvincia()
    {
        return provincia;
    }

    private boolean existeEscuela(long codigo) {
        boolean ban = false;
        if (codigo >= 0) {
            for (Escuela ref : vec) {
                if (ref != null && ref.getCodigo() == codigo) {
                    ban = true;
                    break;
                }
            }
        }
        return ban;
    }
}
